<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>README - racc: Ruby Standard Library Documentation</title>


<script src="../js/navigation.js" defer></script>
<script src="../js/search.js" defer></script>
<script src="../js/search_index.js" defer></script>
<script src="../js/searcher.js" defer></script>
<script src="../js/darkfish.js" defer></script>

<script src="../js/jquery-3.2.0.min.js"></script>

<script src="../js/vue.min.js"></script>
<script src="../js/js.cookie.min.js"></script>

<link href="../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../css/rdoc.css" rel="stylesheet">
<link href="../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../";
  var index_rel_prefix = "../";
  var darkModeCsseHref = "../css/rdoc-dm.css"
  var defaultModeCssHref = "../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="file">
  <!-- this is page.html -->
  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->


 <div class='wrapper hdiv'>

 


<nav id='vapp' role="navigation">
  <div id="project-navigation">
    <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../table_of_contents.html#pages">Pages</a>
    <a href="../table_of_contents.html#classes">Classes</a>
    <a href="../table_of_contents.html#methods">Methods</a>
  </div>
</div>

    <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

  </div>

  
<div class="nav-section">
  <h3>Table of Contents</h3>

  <ul class="link-list" role="directory">
    <li><a href="#label-Racc">Racc</a>
    <li><a href="#label-DESCRIPTION-3A">DESCRIPTION:</a>
    <li><a href="#label-Requirement">Requirement</a>
    <li><a href="#label-Installation">Installation</a>
    <li><a href="#label-Testing+Racc">Testing Racc</a>
    <li><a href="#label-License">License</a>
    <li><a href="#label-Bug+Reports">Bug Reports</a>
  </ul>
</div>

  <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>

  <div id="project-metadata">
   <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
    
<div id="fileindex-section" class="nav-section">
  <h3>Pages</h3>

  <ul class="link-list">
    <li><a href="../racc-1_7_1/README_ja_rdoc.html">README.ja</a>
    <li><a href="../racc-1_7_1/README_rdoc.html">README</a>
    <li><a href="../racc-1_7_1/doc/en/NEWS_en_rdoc.html">NEWS.en</a>
    <li><a href="../racc-1_7_1/doc/en/grammar_en_rdoc.html">grammar.en</a>
    <li><a href="../racc-1_7_1/doc/en/grammar2_en_rdoc.html">grammar2.en</a>
    <li><a href="../racc-1_7_1/doc/ja/NEWS_ja_rdoc.html">NEWS.ja</a>
    <li><a href="../racc-1_7_1/doc/ja/debug_ja_rdoc.html">debug.ja</a>
    <li><a href="../racc-1_7_1/doc/ja/grammar_ja_rdoc.html">grammar.ja</a>
    <li><a href="../racc-1_7_1/doc/ja/parser_ja_rdoc.html">parser.ja</a>
  </ul>
</div>

   </div>
  </div>
</nav>


<!--  carbon ads here -->

<div id='extraz'>
  <div class='adzbox-index'  >
   
  </div>
 </div>         


<main role="main" aria-label="Page racc-1.7.1/README.rdoc">

<h1 id="label-Racc"><a href="../Racc.html"><code>Racc</code></a><span><a href="#label-Racc">&para;</a> <a href="#top">&uarr;</a></span></h1>
<ul><li>
<p><a href="https://github.com/ruby/racc">github.com/ruby/racc</a></p>
</li></ul>

<h2 id="label-DESCRIPTION-3A">DESCRIPTION:<span><a href="#label-DESCRIPTION-3A">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>Racc is a LALR(1) parser generator.
It is written in Ruby itself, and generates Ruby program.</pre>

<h2 id="label-Requirement">Requirement<span><a href="#label-Requirement">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>*  Ruby 2.5 or later.</pre>

<h2 id="label-Installation">Installation<span><a href="#label-Installation">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>gem install:

  $ gem install racc

setup.rb install:

Type this in the top directory of the extracted archive:

  $ ruby setup.rb config
  $ ruby setup.rb setup
 ($ su)
  # ruby setup.rb install

You can install Racc into your favorite directory by giving
options to setup.rb. e.g.

  $ ruby setup.rb config --prefix=/usr

For details, try &quot;ruby setup.rb --help&quot;.

If you don&#39;t have C Compiler
----------------------------

You can install Racc without C compilers. Type following
command in config phase.

  $ ruby setup.rb config --without-ext</pre>

<h2 id="label-Testing+Racc">Testing <a href="../Racc.html"><code>Racc</code></a><span><a href="#label-Testing+Racc">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>Racc comes with simple calculator. To compile this, on shell:

    $ racc -o calc calc.y

This process costs few seconds (or less). Then type:

    $ ruby calc

... Does it work?
For details of Racc, see HTML documents placed under &#39;doc/en/&#39;
and sample grammar files under &#39;sample/&#39;.</pre>

<h2 id="label-License">License<span><a href="#label-License">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>Racc is distributed under the same terms of ruby.
(see the file COPYING). Note that you do NOT need to follow
ruby license for your own parser (racc outputs).
You can distribute those files under any licenses you want.</pre>

<h2 id="label-Bug+Reports">Bug Reports<span><a href="#label-Bug+Reports">&para;</a> <a href="#top">&uarr;</a></span></h2>

<pre>Any kind of bug report is welcome.
If you find a bug of Racc, please report an issue at 
https://github.com/ruby/racc/issues. Your grammar file,
debug output generated by &quot;racc -g&quot;, are helpful.

                                                    Minero Aoki
                                            aamine@loveruby.net
                                          http://i.loveruby.net</pre>

</main>

</div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is provided by <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>.</p><p><a href="https://jamesbritt.bandcamp.com/">Maximum R+D</a>.  </p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

